import { TimeNodeBasic } from './../../models/timenode/timeNodeBasic';
export class TimeNodeService{
	
	/**
	 * 获取用户所有节点列表
	 */
	public static findAllNode(uid:number):Promise<Array<TimeNodeBasic>> {
		return TimeNodeBasic.findAll({where:{userId:uid}});
	}

	/**
	 * 根据关联id获取节点列表
	 * type取值：
	 * typeId-节点类型
	 * parentTypeId-节点父类型
	 * groupId-节点组
	 * travelId-旅程
	 * travelDayId-旅程日
	 */
	public static findNodeById(data:any,uid:number):Promise<Array<TimeNodeBasic>> {
		const where:any = {};
		where[data.type] = data.id;
		where.userId = uid;
		return TimeNodeBasic.findAll({where});
	}
	/**
	 * 根据节点类型获取节点列表
	 * @param data nodeType  1-普通节点 2-旅程节点 3-传记节点
	 */
	public static findNodeByType(type:number,uid:number):Promise<Array<TimeNodeBasic>> {
		return TimeNodeBasic.findAll({where:{nodeType:type,userId:uid}});
	}

	/**
	 * 获取节点详情
	 */
	public static findNodeDetail(id:number,uid:number):Promise<TimeNodeBasic> {
		return TimeNodeBasic.findOne({where:{userId:uid,id}});
	}

	/**
	 * 创建节点
	 */
	public static createTimeNode(data:TimeNodeBasic) {
		return TimeNodeBasic.create(data);
	}

	/**
	 * 修改节点
	 */
	public static updateTimeNodeById(id:number,data:TimeNodeBasic) {
		return TimeNodeBasic.update(data,{where:{id}});
	}
	/**
	 * 删除节点
	 */
	public static deleteTimeNodeById(id:number) {
		return TimeNodeBasic.destroy({where:{id}});
	}
}